package com.sp.fresh_produce.controller.dto.req;

import jakarta.validation.constraints.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
/**
 * 新增/编辑分类请求体
 * <p>
 * 包含分类基本信息，使用校验注解保证参数合法。
 */
public class RequestCategory {

    @NotBlank(message = "需要商品名称")
    @Size(min = 2, max = 20, message = "商品名称不能小于2或大于20")
    /** 分类名称（2-20 个字符） */
    private String name;

    @NotNull(message = "需要商品目录")
    @Min(value = 1, message = "商品目录在1至3之间")
    @Max(value = 3, message = "商品目录在1至3之间")
    /** 分类层级（1-3 之间） */
    private Integer type;

    @NotNull(message = "父类目录不为空")
    /** 父级分类 ID（根目录通常为 0 或 null） */
    private Integer parentId;

    @NotNull(message = "目录排序不为空")
    @Min(value = 0, message = "排序号不能为负数")
    /** 排序号（非负整数） */
    private Integer orderNum;
}
